In the context of computer architecture, a cache may be considered to be a memory system within a processor. While limited in space, a cache can retrieve data very quickly, often is as little as one processing cycle. Caches are used to store data which, for example, is accessed frequently or which is expected to be needed in the future. When a new entry has to be added to a cache, some existing entry must be discarded, so some method for choosing which entry to discard is needed. For example, many current cache designs replace the oldest entry therein when a new entry has to be added. If the entry which has been removed from the cache is later re-added, the processor suffers a penally based upon the number of processing cycles the processor takes to rebuild the entry, which, had the entry not been removed, would not have been needed.